Hydraulic pressure variation in a legged robot

ABSTRACT

An example robot includes movable members, a hydraulic system including at least (i) hydraulic actuators configured to operate the movable members, and (ii) a source of hydraulic fluid, and a controller. The controller may be configured to: determine a task to be performed by the robot, where the task includes a plurality of phases; cause hydraulic fluid having a first pressure level to flow from the source to the hydraulic actuators for the robot to perform a first phase of the plurality of phases of the task; based on a second phase of the task, determine a second pressure level for the hydraulic fluid; and adjust, based on the second pressure level, operation of the hydraulic system before the robot begins the second phase of the task.

BACKGROUND

An example robot may have a plurality of members composing the robot'slegs and arms. The robot may be configured to perform tasks that involvewalking, running, standing in position, grasping objects, etc. Toperform these tasks, a controller of the robot may actuate one or moreof the members of the robot. For instance, controller may actuate thelegs so as to cause the robot to take steps toward a particularlocation. The robot may include a hydraulic system configured to providehydraulic power to actuate the members of the robot.

SUMMARY

The present disclosure describes implementations that relate tohydraulic pressure variation in a legged robot. In a first exampleimplementation, the present disclosure describes a robot. The robotincludes one or more movable members. The robot also includes ahydraulic system comprising at least (i) one or more hydraulic actuatorsconfigured to operate the one or more movable members, and (ii) a sourceof hydraulic fluid. The robot further includes a controller configuredto perform operations. The operations include determining a task to beperformed by the robot. The task includes a plurality of phases. Theoperations also include causing hydraulic fluid having a first pressurelevel to flow from the source to the one or more hydraulic actuators forthe robot to perform a first phase of the plurality of phases of thetask. The operations further include, based on a second phase of thetask, determining a second pressure level for the hydraulic fluid. Theoperations also include adjusting, based on the second pressure level,operation of the hydraulic system before the robot begins the secondphase of the task.

In a second example implementation, the present disclosure describesperforming the following operations: (i) determining a task to beperformed by a robot, where the robot includes one or more movablemembers and a hydraulic system comprising at least (a) one or morehydraulic actuators configured to operate the one or more movablemembers, and (b) a source of hydraulic fluid, where the task includes aplurality of phases; (ii) causing hydraulic fluid having a firstpressure level to flow from the source to the one or more hydraulicactuators for the robot to perform a first phase of the plurality ofphases of the task; (iii) based on a second phase of the task,determining a second pressure level for the hydraulic fluid; and (iv)adjusting, based on the second pressure level, operation of thehydraulic system before the robot begins the second phase of the task.

In a third example implementation, the present disclosure describes anon-transitory computer readable medium having stored thereininstructions that, when executed by a computing device, cause thecomputing device to perform operations in accordance with the secondexample implementation.

A fourth example implementation may include a system having means forperforming operations in accordance with the second exampleimplementation

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects,implementations, and features described above, further aspects,implementations, and features will become apparent by reference to thefigures and the following detailed description.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates an example configuration of a robotic system, inaccordance with an example implementation.

FIG. 2 illustrates a quadruped robot, in accordance with an exampleimplementation.

FIG. 3 illustrates a biped robot, in accordance with another exampleimplementation.

FIG. 4 illustrates a side view of a robotic leg, in accordance with anexample implementation.

FIG. 5 illustrates a hydraulic system controlling actuators and of arobotic leg, in accordance with an example implementation.

FIG. 6 illustrates pressure variation during a task having a pluralityof phases, in accordance with an example implementation.

FIG. 7 illustrates pressure variation as a robot is subjected to adisturbance during performance of a task, in accordance with an exampleimplementation.

FIG. 8 illustrates a running pressure envelope, in accordance with anexample implementation.

FIG. 9 is a flow chart of a method for controlling hydraulic pressure ina legged robot, in accordance with an example implementation.

DETAILED DESCRIPTION

The following detailed description describes various features andoperations of the disclosed systems with reference to the accompanyingfigures. The illustrative implementations described herein are not meantto be limiting. Certain aspects of the disclosed systems can be arrangedand combined in a wide variety of different configurations, all of whichare contemplated herein.

Further, unless context suggests otherwise, the features illustrated ineach of the figures may be used in combination with one another. Thus,the figures should be generally viewed as component aspects of one ormore overall implementations, with the understanding that not allillustrated features are necessary for each implementation.

Additionally, any enumeration of elements, blocks, or steps in thisspecification or the claims is for purposes of clarity. Thus, suchenumeration should not be interpreted to require or imply that theseelements, blocks, or steps adhere to a particular arrangement or arecarried out in a particular order.

I. Example Robotic Systems

FIG. 1 illustrates an example configuration of a robotic system that maybe used in connection with the implementations described herein. Therobotic system 100 may be configured to operate autonomously,semi-autonomously, and/or using directions provided by user(s). Therobotic system 100 may be implemented in various forms, such as a bipedrobot, quadruped robot, or some other arrangement. Furthermore, therobotic system 100 may also be referred to as a robot, robotic device,or mobile robot, among other designations.

As shown in FIG. 1, the robotic system 100 may include processor(s) 102,data storage 104, and controller(s) 108, which together may be part of acontrol system 118. The robotic system 100 may also include sensor(s)112, power source(s) 114, mechanical components 110, and electricalcomponents 116. Nonetheless, the robotic system 100 is shown forillustrative purposes, and may include more or fewer components. Thevarious components of robotic system 100 may be connected in any manner,including wired or wireless connections. Further, in some examples,components of the robotic system 100 may be distributed among multiplephysical entities rather than a single physical entity. Other exampleillustrations of robotic system 100 may exist as well.

Processor(s) 102 may operate as one or more general-purpose hardwareprocessors or special purpose hardware processors (e.g., digital signalprocessors, application specific integrated circuits, etc.). Theprocessor(s) 102 may be configured to execute computer-readable programinstructions 106, and manipulate data 107, both of which are stored inthe data storage 104. The processor(s) 102 may also directly orindirectly interact with other components of the robotic system 100,such as sensor(s) 112, power source(s) 114, mechanical components 110,and/or electrical components 116.

The data storage 104 may be one or more types of hardware memory. Forexample, the data storage 104 may include or take the form of one ormore computer-readable storage media that can be read or accessed byprocessor(s) 102. The one or more computer-readable storage media caninclude volatile and/or non-volatile storage components, such asoptical, magnetic, organic, or another type of memory or storage, whichcan be integrated in whole or in part with processor(s) 102. In someimplementations, the data storage 104 can be a single physical device.In other implementations, the data storage 104 can be implemented usingtwo or more physical devices, which may communicate with one another viawired or wireless communication. As noted previously, the data storage104 may include the computer-readable program instructions 106 and thedata 107. The data 107 may be any type of data, such as configurationdata, sensor data, and/or diagnostic data, among other possibilities.

The controller 108 may include one or more electrical circuits, units ofdigital logic, computer chips, and/or microprocessors that areconfigured to (perhaps among other tasks), interface between anycombination of the mechanical components 110, the sensor(s) 112, thepower source(s) 114, the electrical components 116, the control system118, and/or a user of the robotic system 100. In some implementations,the controller 108 may be a purpose-built embedded device for performingspecific operations with one or more subsystems of the robotic system100.

The control system 118 may monitor and physically change the operatingconditions of the robotic system 100. In doing so, the control system118 may serve as a link between portions of the robotic system 100, suchas between mechanical components 110 and/or electrical components 116.In some instances, the control system 118 may serve as an interfacebetween the robotic system 100 and another computing device. Further,the control system 118 may serve as an interface between the roboticsystem 100 and a user. The instance, the control system 118 may includevarious components for communicating with the robotic system 100,including a joystick, buttons, and/or ports, etc. The example interfacesand communications noted above may be implemented via a wired orwireless connection, or both. The control system 118 may perform otheroperations for the robotic system 100 as well.

During operation, the control system 118 may communicate with othersystems of the robotic system 100 via wired or wireless connections, andmay further be configured to communicate with one or more users of therobot. As one possible illustration, the control system 118 may receivean input (e.g., from a user or from another robot) indicating aninstruction to perform a particular gait in a particular direction, andat a particular speed. A gait is a pattern of movement of the limbs ofan animal, robot, or other mechanical structure.

Based on this input, the control system 118 may perform operations tocause the robotic system 100 to move according to the requested gait. Asanother illustration, a control system may receive an input indicatingan instruction to move to a particular geographical location. Inresponse, the control system 118 (perhaps with the assistance of othercomponents or systems) may determine a direction, speed, and/or gaitbased on the environment through which the robotic system 100 is movingen route to the geographical location.

Operations of the control system 118 may be carried out by theprocessor(s) 102. Alternatively, these operations may be carried out bythe controller 108, or a combination of the processor(s) 102 and thecontroller 108. In some implementations, the control system 118 maypartially or wholly reside on a device other than the robotic system100, and therefore may at least in part control the robotic system 100remotely.

Mechanical components 110 represent hardware of the robotic system 100that may enable the robotic system 100 to perform physical operations.As a few examples, the robotic system 100 may include physical memberssuch as leg(s), arm(s), and/or wheel(s). The physical members or otherparts of robotic system 100 may further include actuators arranged tomove the physical members in relation to one another. The robotic system100 may also include one or more structured bodies for housing thecontrol system 118 and/or other components, and may further includeother types of mechanical components. The particular mechanicalcomponents 110 used in a given robot may vary based on the design of therobot, and may also be based on the operations and/or tasks the robotmay be configured to perform.

In some examples, the mechanical components 110 may include one or moreremovable components. The robotic system 100 may be configured to addand/or remove such removable components, which may involve assistancefrom a user and/or another robot. For example, the robotic system 100may be configured with removable arms, hands, feet, and/or legs, so thatthese appendages can be replaced or changed as needed or desired. Insome implementations, the robotic system 100 may include one or moreremovable and/or replaceable battery units or sensors. Other types ofremovable components may be included within some implementations.

The robotic system 100 may include sensor(s) 112 arranged to senseaspects of the robotic system 100. The sensor(s) 112 may include one ormore force sensors, torque sensors, velocity sensors, accelerationsensors, position sensors, proximity sensors, motion sensors, locationsensors, load sensors, temperature sensors, touch sensors, depthsensors, ultrasonic range sensors, infrared sensors, object sensors,and/or cameras, among other possibilities. Within some examples, therobotic system 100 may be configured to receive sensor data from sensorsthat are physically separated from the robot (e.g., sensors that arepositioned on other robots or located within the environment in whichthe robot is operating).

The sensor(s) 112 may provide sensor data to the processor(s) 102(perhaps by way of data 107) to allow for interaction of the roboticsystem 100 with its environment, as well as monitoring of the operationof the robotic system 100. The sensor data may be used in evaluation ofvarious factors for activation, movement, and deactivation of mechanicalcomponents 110 and electrical components 116 by control system 118. Forexample, the sensor(s) 112 may capture data corresponding to the terrainof the environment or location of nearby objects, which may assist withenvironment recognition and navigation. In an example configuration,sensor(s) 112 may include RADAR (e.g., for long-range object detection,distance determination, and/or speed determination), LIDAR (e.g., forshort-range object detection, distance determination, and/or speeddetermination), SONAR (e.g., for underwater object detection, distancedetermination, and/or speed determination), VICON® (e.g., for motioncapture), one or more cameras (e.g., stereoscopic cameras for 3Dvision), a global positioning system (GPS) transceiver, and/or othersensors for capturing information of the environment in which therobotic system 100 is operating. The sensor(s) 112 may monitor theenvironment in real time, and detect obstacles, elements of the terrain,weather conditions, temperature, and/or other aspects of theenvironment.

Further, the robotic system 100 may include sensor(s) 112 configured toreceive information indicative of the state of the robotic system 100,including sensor(s) 112 that may monitor the state of the variouscomponents of the robotic system 100. The sensor(s) 112 may measureactivity of systems of the robotic system 100 and receive informationbased on the operation of the various features of the robotic system100, such the operation of extendable legs, arms, or other mechanicaland/or electrical features of the robotic system 100. The data providedby the sensor(s) 112 may enable the control system 118 to determineerrors in operation as well as monitor overall operation of componentsof the robotic system 100.

As an example, the robotic system 100 may use force sensors to measureload on various components of the robotic system 100. In someimplementations, the robotic system 100 may include one or more forcesensors on an arm or a leg to measure the load on the actuators thatmove one or more members of the arm or leg. As another example, therobotic system 100 may use one or more position sensors to sense theposition of the actuators of the robotic system. For instance, suchposition sensors may sense states of extension, retraction, or rotationof the actuators on arms or legs.

As another example, the sensor(s) 112 may include one or more velocityand/or acceleration sensors. For instance, the sensor(s) 112 may includean inertial measurement unit (IMU). The IMU may sense velocity andacceleration in the world frame, with respect to the gravity vector. Thevelocity and acceleration sensed by the IMU may then be translated tothat of the robotic system 100 based on the location of the IMU in therobotic system 100 and the kinematics of the robotic system 100.

The robotic system 100 may include other types of sensors not explicateddiscussed herein. Additionally or alternatively, the robotic system mayuse particular sensors for purposes not enumerated herein.

The robotic system 100 may also include one or more power source(s) 114configured to supply power to various components of the robotic system100. Among other possible power systems, the robotic system 100 mayinclude a hydraulic system, electrical system, batteries, and/or othertypes of power systems. As an example illustration, the robotic system100 may include one or more batteries configured to provide charge tocomponents of the robotic system 100. Some of the mechanical components110 and/or electrical components 116 may each connect to a differentpower source, may be powered by the same power source, or be powered bymultiple power sources.

Any type of power source may be used to power the robotic system 100,such as electrical power or a gasoline engine. Additionally oralternatively, the robotic system 100 may include a hydraulic systemconfigured to provide power to the mechanical components 110 using fluidpower. Components of the robotic system 100 may operate based onhydraulic fluid being transmitted throughout the hydraulic system tovarious hydraulic motors and hydraulic cylinders, for example. Thehydraulic system may transfer hydraulic power by way of pressurizedhydraulic fluid through tubes, flexible hoses, or other links betweencomponents of the robotic system 100. The power source(s) 114 may chargeusing various types of charging, such as wired connections to an outsidepower source, wireless charging, combustion, or other examples.

The electrical components 116 may include various mechanisms capable ofprocessing, transferring, and/or providing electrical charge or electricsignals. Among possible examples, the electrical components 116 mayinclude electrical wires, circuitry, and/or wireless communicationtransmitters and receivers to enable operations of the robotic system100. The electrical components 116 may interwork with the mechanicalcomponents 110 to enable the robotic system 100 to perform variousoperations. The electrical components 116 may be configured to providepower from the power source(s) 114 to the various mechanical components110, for example. Further, the robotic system 100 may include electricmotors. Other examples of electrical components 116 may exist as well.

Although not shown in FIG. 1, the robotic system 100 may include a body,which may connect to or house appendages and components of the roboticsystem. As such, the structure of the body may vary within examples andmay further depend on particular operations that a given robot may havebeen designed to perform. For example, a robot developed to carry heavyloads may have a wide body that enables placement of the load.Similarly, a robot designed to reach high speeds may have a narrow,small body that does not have substantial weight. Further, the bodyand/or the other components may be developed using various types ofmaterials, such as metals or plastics. Within other examples, a robotmay have a body with a different structure or made of various types ofmaterials.

The body and/or the other components may include or carry the sensor(s)112. These sensors may be positioned in various locations on the roboticsystem 100, such as on the body and/or on one or more of the appendages,among other examples.

On its body, the robotic system 100 may carry a load, such as a type ofcargo that is to be transported. The load may also represent externalbatteries or other types of power sources (e.g., solar panels) that therobotic system 100 may utilize. Carrying the load represents one exampleuse for which the robotic system 100 may be configured, but the roboticsystem 100 may be configured to perform other operations as well.

As noted above, the robotic system 100 may include various types oflegs, arms, wheels, and so on. In general, the robotic system 100 may beconfigured with zero or more legs. An implementation of the roboticsystem with zero legs may include wheels, treads, or some other form oflocomotion. An implementation of the robotic system with two legs may bereferred to as a biped, and an implementation with four legs may bereferred as a quadruped. Implementations with six or eight legs are alsopossible. For purposes of illustration, biped and quadrupedimplementations of the robotic system 100 are described below.

FIG. 2 illustrates a quadruped robot 200, according to an exampleimplementation. Among other possible features, the robot 200 may beconfigured to perform some of the operations described herein. The robot200 includes a control system, and legs 204A, 204B, 204C, 204D connectedto a body 208. Each leg may include a respective foot 206A, 206B, 206C,206D that may contact a surface (e.g., a ground surface). Further, therobot 200 is illustrated with sensor(s) 210, and may be capable ofcarrying a load on the body 208. Within other examples, the robot 200may include more or fewer components, and thus may include componentsnot shown in FIG. 2.

The robot 200 may be a physical representation of the robotic system 100shown in FIG. 1, or may be based on other configurations. Thus, therobot 200 may include one or more of mechanical components 110,sensor(s) 112, power source(s) 114, electrical components 116, and/orcontrol system 118, among other possible components or systems.

The configuration, position, and/or structure of the legs 204A-204D mayvary in example implementations. The legs 204A-204D enable the robot 200to move relative to its environment, and may be configured to operate inmultiple degrees of freedom to enable different techniques of travel. Inparticular, the legs 204A-204D may enable the robot 200 to travel atvarious speeds according to the mechanics set forth within differentgaits. The robot 200 may use one or more gaits to travel within anenvironment, which may involve selecting a gait based on speed, terrain,the need to maneuver, and/or energy efficiency.

Further, different types of robots may use different gaits due tovariations in design. Although some gaits may have specific names (e.g.,walk, trot, run, bound, gallop, etc.), the distinctions between gaitsmay overlap. The gaits may be classified based on footfall patterns—thelocations on a surface for the placement the feet 206A-206D. Similarly,gaits may also be classified based on ambulatory mechanics.

The body 208 of the robot 200 connects to the legs 204A-204D and mayhouse various components of the robot 200. For example, the body 208 mayinclude or carry sensor(s) 210. These sensors may be any of the sensorsdiscussed in the context of sensor(s) 112, such as a camera, LIDAR, oran infrared sensor. Further, the locations of sensor(s) 210 are notlimited to those illustrated in FIG. 2. Thus, sensor(s) 210 may bepositioned in various locations on the robot 200, such as on the body208 and/or on one or more of the legs 204A-204D, among other examples.

FIG. 3 illustrates a biped robot 300 according to another exampleimplementation. Similar to robot 200, the robot 300 may correspond tothe robotic system 100 shown in FIG. 1, and may be configured to performsome of the implementations described herein. Thus, like the robot 200,the robot 300 may include one or more of mechanical components 110,sensor(s) 112, power source(s) 114, electrical components 116, and/orcontrol system 118.

For example, the robot 300 may include legs 304 and 306 connected to abody 308. Each leg may consist of one or more members connected byjoints and configured to operate with various degrees of freedom withrespect to one another. Each leg may also include a respective foot 310and 312, which may contact a surface (e.g., the ground surface). Likethe robot 200, the legs 304 and 306 may enable the robot 300 to travelat various speeds according to the mechanics set forth within gaits. Therobot 300, however, may utilize different gaits from that of the robot200, due at least in part to the differences between biped and quadrupedcapabilities.

The robot 300 may also include arms 318 and 320. These arms mayfacilitate object manipulation, load carrying, and/or balancing for therobot 300. Like legs 304 and 306, each arm may consist of one or moremembers connected by joints and configured to operate with variousdegrees of freedom with respect to one another. Each arm may alsoinclude a respective hand 322 and 324. The robot 300 may use hands 322and 324 (or end-effectors) for gripping, turning, pulling, and/orpushing objects. The hands 322 and 324 may include various types ofappendages or attachments, such as fingers, grippers, welding tools,cutting tools, and so on.

The robot 300 may also include sensor(s) 314, corresponding to sensor(s)112, and configured to provide sensor data to its control system. Insome cases, the locations of these sensors may be chosen in order tosuggest an anthropomorphic structure of the robot 300. Thus, asillustrated in FIG. 3, the robot 300 may contain vision sensors (e.g.,cameras, infrared sensors, object sensors, range sensors, etc.) withinits head 316.

II. Controlling Hydraulic Pressure Level in a Legged Robot

In examples, a legged robot, such as any of the robots 200 and 300, mayinclude a hydraulic system configured to control movement of variousmembers of the robot. An example hydraulic system may include multipleactuators (e.g., hydraulic cylinders, rotary vane-actuators, hydraulicmotors, etc.). In some examples, the hydraulic system may have a singlepressure source driving the actuators. Such a hydraulic system may bereferred to as a “single pressure rail” system. In a single pressurerail system, a hydraulic pump, or any pressure source, may maintain asource of supply pressure, and multiple valves may be used to controlflow to the actuators.

For the legged robot to perform a particular task, such as walking ortrotting, the actuators require fluid from the pump at a particularpressure so as to cause the respective members of the robot to move.However, during a task or a phase of a task, each actuator may exert ormay be subjected to a different force compared to other actuators, andthus may require a different hydraulic pressure compared to otheractuators. For instance, during a particular operation, a first actuatormay exert negative work (e.g., perform a movement assisted by gravity),while a second actuator may exert a positive work (e.g., push againstthe ground). In this case, the first actuator may require less, if any,system pressure compared to the second actuator. However, the pumpshould still provide hydraulic fluid at a pressure sufficient to drivethe second actuator, i.e., the pump should provide fluid at the higherrequested pressure.

In examples, a controller of the robot may be configured to control thepressure source to supply fluid at a constant high pressure that issufficient to drive any of the actuators during any task. However, inthese examples, the robot may operate inefficiently because the constanthigh pressure would be determined based on the highest expected pressureregardless of the current task or anticipated behavior of the robot. Forsuch a robot, improving hydraulic efficiency can reduce energyconsumption, which may result in reduction in weight of fuel, weight ofbatteries, and/or cost. Disclosed herein are systems and operations forvarying hydraulic fluid pressure to provide a pressure sufficient toperform a desired task based on a current state of the robot,anticipated future behavior of the robot, and any anticipateddisturbance to the robot.

FIG. 4 is a side-view of an example articulable robotic leg 400, inaccordance with an example implementation. The robotic leg 400 includesa member 402 and a member 404. The member 402 has an outboard end thatis connected in a rotatable manner to an inboard end of the member 404at a joint 406. The member 402 has an inboard end that is connected tothe robot at joint 408. The member 404 has an outboard end that isconnected to a foot member 409. The foot member 409 is depicted in FIG.4 to be similar to the feet 206A-206D of the robot 200. However, thisdescription applies to other types of feet such as the feet 310 and 312of the robot 300.

The robotic leg 400 also includes an actuator 410 connected between themember 402 and the member 404. The robotic leg 400 further includes anactuator 412 connected between the member 402 and the robot. In someimplementations, the actuators 410 and 412 may be linear hydraulicactuator cylinders. Operating the actuator 412 causes the member 402 andthe member 404 to rotate around joint 408. Similarly, actuation of theactuator 410 causes the member 404 to rotate around the joint 406.

Operating the actuator 410 and the actuator 412 in combination may causethe leg 400 to take a step. For instance, the actuator 410 may retract,which causes member 404 to rotate counter-clockwise (from theperspective shown in FIG. 4) around the joint 406. This rotation mayraise the leg 400 up from the ground. The actuator 412 may retract,which causes the member 402 to rotate clockwise (from the perspectiveshown in FIG. 4) around the joint 408. By rotating the member 402clockwise around the joint 408, the foot member 409 moves forwardrelative to the ground. The actuators 410 and 412 may then extend andcause the robotic leg 400 to be lowered and push against the ground,causing the robot to move forward or to adopt a new stance.

Although the side view of the robotic leg in FIG. 4 is shown with thetwo actuators 410 and 412 that move the robotic leg 400 in twodimensions, the robotic leg 400 may have any number of actuators thatallow for more or fewer degrees of freedom. In some cases, the roboticleg 400 may include actuators that allow for lateral movement of therobotic leg 400 (i.e., in and out of the page in the y-direction) inaddition to longitudinal movement (i.e., in the x-direction depicted inFIG. 4) and vertical movement (i.e., in the z-direction depicted in FIG.4).

A task to be performed by the robot may include a plurality of phases.For example, a task may include a first phase that includes picking upan object, followed by a second phases that involves walking for aparticular period of time. A third phase of the task may involvetrotting or jogging to another location, followed by a fourth phase thatinvolves stopping at a target location, and followed by a fifth phasethat involves placing the object on a shelf or inserting the object in ahole, etc.

To perform a particular task that includes a plurality of phases, therobot may move according to different gaits by varying the timing ofactuation, speed of actuation, and range of actuation of the actuators.The control system of the robot may select a particular gait based onfactors such as the phase of task to be performed, speed, terrain, theneed to maneuver, etc. For instance, in a particular task, the robot maytransition from a walk to a run as speed of locomotion is increased. Therobot may then transition back to a walk on uneven terrain.

Further, load on the hydraulic actuators may vary during the steppingsequence. During the portion of the gait in which the hydraulicactuators are causing a leg to push against the ground, the load on thehydraulic actuators is relatively large compared to the portion of thegait in which the hydraulic actuators are raising the leg and steppingforward. As the load varies, the robot may vary the hydraulic pressureto maintain the movement of the legs according to the gait. Also,acceleration of hydraulic actuators (i.e., acceleration of a piston of alinear hydraulic actuator cylinder) is proportional to the pressure ofthe hydraulic fluid used to actuate the hydraulic actuator. Thus, thehydraulic system should supply hydraulic fluid at a pressure level thatis sufficient to enable the robot to meet performance requirements of aparticular task or a phase of a task. Described next is an examplesystem that enables varying the supply pressure level during performanceof the task such that the robot is capable of performing the task, whileoperating efficiently.

FIG. 5 illustrates a hydraulic system controlling the actuators 410 and412 of the robotic leg 400, in accordance with an exampleimplementation. The actuators 410 and 412 are illustrated as linearhydraulic actuator cylinders. However, the hydraulic system describedherein can be used to control other types of hydraulic actuators as well(e.g., hydraulic motors).

FIG. 5 illustrates a hydraulic pump 500 driven by a motor 502. The pump500 has access to hydraulic fluid from a reservoir 504 and providespressurized fluid to an accumulator 506 through check valve 508. Thecheck valve 508 precludes backflow into the pump 500 to protect the pump500. Hydraulic valves such as valves 510 and 512 control flow ofhydraulic fluid from the accumulator 506 to the hydraulic actuators 410and 412, respectively, and control flow of fluid discharged from thehydraulic actuators 410 and 412 to the reservoir 504.

The actuator 410 includes a piston 514 slidably accommodated in theactuator 410. The piston 514 includes a piston head 516 and a rod 518extending from the piston head 516 along a central axis direction of theactuator 410. The rod 518 is thus coupled to the member 404 shown inFIG. 4. The piston head 516 divides the inside of the actuator 410 intotwo chambers, 520 and 522. Similarly, the actuator 412 includes a piston524 slidably accommodated in the actuator 412. The piston 524 includes apiston head 526 and a rod 528 extending from the piston head 526 along acentral axis direction of the actuator 412. The rod 528 is thus coupledto the member 402. The piston head 524 divides the inside of theactuator 412 into two chambers, 530 and 532. Although the actuators 410and 412 are depicted as double-acting cylinders, single acting cylindersand other configurations of actuators are contemplated.

The valve 510 has a spool 534 configured to move linearly within a bodyof the valve 510. The valve 510 is configured to control hydraulic fluidflow to and from the actuator 410 so as to control motion of the piston516. Particularly, axial position of the spool 534 controls flow fromthe accumulator 506 through a supply line 536 to one of the two chambers520 and 522 of the actuator 410. Axial position of the spool 534 furthercontrols flow of fluid forced out from the other chamber to thereservoir 504 by way of return line 538. For instance, the spool 534 maybe shifted to a given linear position to the right of a null position ofthe spool 534 as shown in FIG. 5. At this position, fluid flows from theaccumulator 506 through opening 540 to the chamber 522, and fluid isforced out from the chamber 520 through opening 542 to flow through thereturn line 538 to the reservoir 504. As a result, the piston 516retracts (i.e., moves left in FIG. 5). Alternatively, the spool 534 maybe shifted to a linear position to the left of the null position. Atsuch a position, fluid flows from the accumulator 506 through theopening 542 to the chamber 520, and fluid is forced out from the chamber522 through the opening 540 to flow through the return line 538 to thereservoir 504. As a result, the piston 516 extends (i.e., moves right inFIG. 5).

An electric solenoid, a stepper motor, a hydraulic actuator, or anyother actuation device may be used for moving the spool 534. Forexample, as shown as an example for illustration in FIG. 5, a solenoid544 is coupled to a rod 546, which in turn is coupled to the spool 534.Thus, actuating the solenoid 544 by an electric signal causes the rod546 and the spool 534 to move linearly within the body of the valve 510.

Similarly, the valve 512 has a spool 548 configured to move linearlywithin a body of the valve 512. The valve 512 is configured to controlhydraulic fluid flow to and from the actuator 412 so as to controlmotion of the piston 524. Particularly, axial position of the spool 548controls flow from the accumulator 506 through a supply line 550 to oneof the two chambers 530 and 532 of the actuator 412. Axial position ofthe spool 548 controls further controls flow of fluid forced out fromthe other chamber to the reservoir 504 by way of return line 552. Forinstance, as shown in FIG. 5, the spool 548 is shifted to a given linearposition to the right of a null position of the spool 548. At thisposition, fluid flows from the accumulator 506 through opening 554 tothe chamber 532, and fluid is forced out from the chamber 530 throughopening 556 to flow through the return line 552 to the reservoir 504. Asa result, the piston 524 retracts (i.e., moves left in FIG. 5). Asolenoid 558 is coupled to a rod 560, which in turn is coupled to thespool 548. Thus, actuating the solenoid 558 by an electric signal causesthe rod 560 and the spool 548 to move linearly within the body of thevalve 512. The piston 524 can be extended by changing the position ofthe spool 548 within the body of the valve 512.

Although the valves 510 and 512 are depicted as four-way spool valves,any other type of valves could be used to control flow of fluid to andfrom the actuators. For example, a rotary valve having a spool rotatinginside a sleeve could be used. In another example, four two-way valves(e.g., poppet valves) could replace each of the valves 510 and 512.Thus, different valve types of combination of valves could be usedinstead of the four-way spool valves 510 and 512.

A controller 562 of the robot is configured to cause the robot toperform a particular task. The controller 562 may receive inputinformation indicative of a task to be performed (e.g., a trajectory ora path to be followed), or may determine the task to be performed basedon other inputs. The task may be composed of various phases. Forinstance, the task may involve standing for a period of time, followedby trotting for another period of time, and then followed by jogging foranother period of time.

During operation of the robot, the actuators 410 and 412 requirehydraulic fluid at a particular pressure to move the respective membersof the robot. One actuator may require fluid at a pressure differentfrom the pressure required by the other actuator. The controller 562 maybe configured to control the hydraulic system shown in FIG. 5 so as toprovide the higher pressure. The description provided herein uses thetwo actuators 410 and 412 for illustration only. However, it should beunderstood that the robot may have more actuators. For example, assumingthe robot has four legs, each leg having at least two actuators, therobot may have at least eight actuators. The controller 562 may receiveinformation, e.g., via pressure or force sensors, or based on the task,indicative of a pressure level appropriate for each of the eightactuators. The controller 562 may then operate the hydraulic system toprovide the fluid at the highest of the eight pressure levels.

As mentioned above, in an example, the controller 562 may command thehydraulic system to maintain fluid at a sufficiently high pressure todrive the actuators in all expected scenarios. In this example, however,the hydraulic system may operate inefficiently. Particularly, thehydraulic system consumes power based on supply fluid pressure, i.e.,the pressure of hydraulic fluid stored in the accumulator 506. Theconsumed power is calculated as ≅=P×Q, where P is the pressure of fluidprovided by the accumulator 506 and Q is the flow rate of hydraulicfluid flowing to the actuators 410 and 412 through the valves 510 and512.

The pressure P may be determined to be sufficiently high to allow theactuators 410 and 412 to exert the maximum anticipated force. In thiscase, the pressure P is determined to be equal to

$\frac{F_{\max}}{A},$where F_(max) is the maximum force that one or more of the actuators 410and 412 are anticipated to exert, and A is a cross section area of apiston of the actuator (e.g., the piston 514 or the piston 524). In thisexample, in instances during operation of the robot where the actuators410 and 412 are not required to exert the maximum force, the hydraulicsystem still provides the fluid at the pressure P. The differencebetween P and the actual required pressure at a given instant isdissipated as a hydraulic loss through hydraulic components, such as thevalves 510 and 512 and the hydraulic lines, rendering the hydraulicsystem inefficient. To render the system more efficient, the controller562 may be configured to control the hydraulic system to vary the supplypressure level based on environmental conditions and the task of therobot as described next.

The controller 562 may receive pressure sensor information from a sensor564 at an outlet of the accumulator 506. If the pressure at the outletof the accumulator 506 is less than the required pressure, thecontroller 562 provides a signal to the motor 502 to rotate and causethe pump 500 to provide high pressure fluid to the accumulator 506. Thepump 500 may continue to provide fluid to the accumulator 506 until thepressure in the accumulator 506 exceeds the required pressure by amargin (i.e., by a threshold pressure value).

Although FIG. 5 depicts a hydraulic system having a constantdisplacement pump 500 driving by a variable speed motor 502, otherpump-motor configurations are contemplated. For example, instead of aconstant displacement pump, a variable displacement pump may be used.Such a variable displacement pump may have swash plate, the angle ofwhich determines an amount of flow discharged from the pump. Thecontroller 562 may vary an angle of the swash plate to vary the amountof flow discharged from the pump even if a speed of the motor 502remains the same. Thus, different pump-motor configurations could beused to control pressure level in the accumulator 506.

If the pressure at the outlet of the accumulator 506 is higher than therequired pressure, the controller 562 may stop or slow down the motor502 if the motor 502 were running. In this manner, as the accumulator506 provides fluid to the actuators 410 and 412, the controller 562allows pressure at the outlet of the accumulator 506 to be reduced.Pressure is reduced by not allowing the pump 500 to make up for thefluid discharged from the accumulator 506.

Thus, reduction in pressure takes place as the accumulator 506 providesfluid to the actuators, or, if the actuators are not consuming hydraulicfluid, reduction in pressure may occur as a result of leakage ofhydraulic fluid throughout the hydraulic system. The controller 562 mayallow such reduction in pressure as long as a target pressure value(i.e., the requested pressure plus a pressure margin value) is lowerthan the pressure at the outlet of the accumulator 506.

Further, the hydraulic system may include a dump valve 566 that iselectrically actuatable by the controller 562 to dump fluid from theaccumulator 506 to the reservoir 504. The dump valve 566 is shown as atwo-way valve that blocks flow from the accumulator 506 to the reservoir504 until the controller 562 provides an actuation signal to a solenoid568. If the controller 562 provides a signal to actuate the dump valve566, flow is allowed between the accumulator 506 and the reservoir 504,thus reducing hydraulic pressure of fluid in the accumulator 506. Whenthe sensor 564 indicates to the controller 562 that a target pressurevalue has been reached, the controller 562 deactivates the dump valve566 to block the flow between the accumulator 506 and the reservoir 504.The dump valve 566 can be any type of spool valve, poppet valve, rotaryvalve, etc. Further, in some examples, the dump valve 566 may beconnected between the accumulator 506 and any other point, other thanthe reservoir 504, in the hydraulic system having lower pressure thanthe accumulator 506.

In examples, the controller 562 may implement closed loop controltechniques to cause the pressure at the outlet of the accumulator 506 toreach a target pressure value. In these examples, the input to thecontroller 562 may include sensor information from the sensor 564, andthe outputs may include commands to the motor 502, the valves 510 and512, and the dump valve 566. The controller 562 thus actuates thecomponents of the hydraulic system illustrated in FIG. 5 so as to reducean error or discrepancy between a target pressure value and the actualpressure value at of fluid in the accumulator 506.

The hydraulic system in FIG. 5 may include more or less components thandepicted in FIG. 5. Further, hydraulic lines depicted in FIG. 5 mayrepresent multiple hydraulic lines. For instance, hydraulic line 570 mayrepresent at least two hydraulic lines. A first hydraulic line may beconfigured to communicate fluid from the pump 500 to the accumulator506, and a second hydraulic line may be configured to communicate fluidfrom the accumulator 506 to the rest of the hydraulic system.

To control the robot efficiently while performing a task, the controller562 may take into consideration a current state of the robot and ananticipated behavior of the robot in the near future. As an example forillustration, FIG. 6 illustrates pressure variation during a task havinga plurality of phases, in accordance with an example implementation. Thetask includes the robot standing for a period of time Δt1, then trottingfor a period of time Δt2, and then jogging for a period of time Δt3.While the robot is standing, pressure required by the actuators 410 and412 is assumed to be P1. While the robot is trotting, pressure requiredby the actuators 410 and 412 is assumed to be P2, which is higher thanP1 because the leg 400 of the robot may exert or may be subjected tohigher forces during trotting than during standing. Similarly, while therobot is jogging, pressure required by the actuators 410 and 412 isassumed to be P3, which is higher than P2 because the leg 400 of therobot may exert or may be subjected to higher forces during jogging thanduring trotting. The pressures P1, P2, and P3 are assumed to besufficiently high to meet the higher of the two respective pressuresrequired by the actuators 410 and 412 in addition to a margin pressureto compensate for any hydraulic losses.

If the controller 562 takes into consideration or reacts to just thecurrent state of the robot, the controller 562 may cause the hydraulicsystem to maintain P1 for a period of Δt1 (duration of standing). Then,after Δt1 elapses, the robot starts to trot and the controller 562reacts by commanding the motor 506 to operate the pump 500 to pump fluidinto the accumulator 506 until the accumulator 506 can provide fluidhaving pressure P2 appropriate for the trotting phase. The controller562 may cause the hydraulic system to maintain P2 for a period of Δt2(duration of trotting). Then, after Δt2 elapses, the robot startsjogging and the controller 562 reacts by commanding the motor 502 tooperate the pump 500 and pump fluid into the accumulator 506 until theaccumulator 506 can provide fluid having pressure P3. Such pressurevariation based on a current state of the robot is illustrated by line600. As shown by the line 600, pressure changes from P1, to P2, to P3are abrupt, which may result in some jerkiness in the motion of therobot. The transitions from P1, to P2, to P3 are depicted by the line600 as vertical sharp transition, but in practice, such transitions maybe performed over a short period of time based on dynamic responsecapabilities of the system.

In another example, to improve efficiency and performance of the robot,the controller 562 may take into consideration the current state of therobot and the anticipated state of the robot as shown by line 602.Particularly, before Δt1 has elapsed, the controller 562, inanticipation of transition from standing to trotting, may cause themotor 502 to start actuating the pump 500 to ramp up pressure level toP2 over a period of time. Similarly, before Δt2 has elapsed, thecontroller 562, in anticipation of transition from trotting to jogging,may cause the motor 502 to start actuating the pump 500 to ramp uppressure level to P3. Ramping up pressure level from P2 to P3 may takeplace over a period of time. In this manner, the controller 562 variesthe pressure level smoothly in anticipation of changes in pressurerequirements during performance of a given task.

In addition to the current and anticipated states of the robot, thecontroller 562 may also take into consideration any disturbances to therobot in determining the required pressure level. In an example, therobot may be subjected to a disturbance during performance of aparticular phase of the task. For instance, the robot may be subjectedto an impact with another object, a terrain may change causing the robotto slip, the terrain may change from a flat and smooth surface to arough (e.g., sandy) surface, the ground may begin to slope up increasingthe load on the legs of the robot, etc. The controller 562 may receivesensory information indicating that the robot has been subjected to sucha disturbance. For the robot to recover from such a disturbance andreturn to performance of the task, the controller 562 may determine thata different pressure level is appropriate for the recovery.

If such a different pressure level is higher than a pressure level atwhich the hydraulic system operated prior to the disturbance, thecontroller 562 may command the pump 500 to increase pressure level offluid in the accumulator 506. If the recovery pressure level is lessthan the pressure level at which the hydraulic system operated prior tothe disturbance, the controller 562 may command the pump 500 to stopproviding fluid to the accumulator 506. Additionally or alternatively,the controller may actuate the dump valve 566 to reduce the pressurelevel to a margin value above the recovery pressure level. Uponrecovering from the disturbance, the controller may adjust operation ofthe hydraulic system to return back to the pressure level appropriatefor the disturbed phase of the task.

FIG. 7 illustrates pressure variation as the robot is subjected to adisturbance during performance of a task, in accordance with an exampleimplementation. Such pressure variation is illustrated by line 700. Thetask illustrated in FIG. 7 involves preplanned phases including atrotting period followed by a standing period. The trotting periodrequires a pressure P1. However, while trotting, the robot is subjectedto a disturbance (e.g., an unanticipated force applied to the robot, therobot slips, a terrain changes from a smooth surface to a rough surface,etc.). The controller 562 may detect such a disturbance (e.g., a changein smoothness of the terrain) by way of sensors coupled to the robot,for example. In response to the disturbance, the controller 562 mayincrease pressure level from P1 to P2 for a “trot recovery” period thatinvolves the robot restoring its balance. After the “trot recovery”period elapses and the robot restores its balance, the robot transitionsback into trotting and the controller 562 thus commands the hydraulicsystem to reduce the pressure back to P1. Then, after the trottingportion of the task is performed, the robot transitions into a standingstate and the controller 562 causes the pressure to be reduced furtherto P3.

Although the line 700 shows abrupt changes in pressure levels similar tovariations illustrated by the line 600 in FIG. 6, the controller 562 maybe configured to anticipate the disturbances by way of sensor inputs.The controller may thus be able to receive the information to adjustoperation of the hydraulic system prior to occurrence of, and inanticipation of, the disturbance.

Particularly, the robot may include sensors (e.g., camera, LIDAR, RADAR,etc.) that provide the controller 562 with information related to anenvironment of the robot. For instance, based on perception sensorinformation, the controller 562 may determine that the robot is about tobump into an object or that an object is about to hit the robot on itsside. In another example, the controller 562 may detect that a portionof a surface on which the robot is about to step is slippery or has adifferent smoothness level compared to a current portion of the surface.For instance, the controller 562 may identify, based on imageinformation captured by an image-capture device coupled to the robot, anicy patch on the ground, or a change in a texture of the terrain. Theterm “about to” is used herein to indicate an event may occur within agiven period of time such as 5 seconds, or a range such as 2-10 seconds.The controller 562 may take such environmental disturbances intoconsideration to determine an appropriate pressure level for thehydraulic system prior to occurrence of the disturbances. In this case,the controller 562 may vary the pressure in an anticipatory smoothmanner similar to the variation represented by the line 602 in FIG. 6.

The controller 562 may take into consideration other factors indetermining an appropriate pressure level. For example, the controller562 may take into consideration a history of requested pressure. Forinstance, the controller 562 may keep track of pressure levels requestedby the actuators of the robot within a predefined period of time in thepast and determine the pressure level to command the hydraulic system todeliver accordingly. If recent pressure level requests indicate a highpressure level, the controller 562 may, in response, increase pressurelevel by pumping fluid in the accumulator 506. The controller 562 mayassign a larger weight to more recent requests, while assigning asmaller weight to older pressure requests.

In another example, the controller 562 may determine that one or more ofthe actuators of the robot have been applying a force that requires apressure level close to current pressure level of the fluid in theaccumulator 506. In response, the controller 562 may increase thepressure level of fluid in the accumulator 506 to increase the margin ordifference between the supply fluid pressure level and the requiredpressure to accommodate any unforeseen changes, for example.

In another example, the controller may take into consideration ananticipated gait of the robot to determine a pressure level that wouldbe required over the next N seconds for instance. In still anotherexample, the controller 562 may determine a likelihood of transitionfrom a current behavior to another behavior based on a nature of thetask of the robot or previous tasks completed by the robot. Forinstance, the robot may be about to lift an object, which may require ahigher hydraulic pressure level. The controller 562 may then determinethe pressure level that would be required to accommodate the change inbehavior and command the hydraulic system to adjust its hydraulicpressure level in advance of the transition.

In an example, the controller 562 may determine a pressure envelop overtime to accommodate a particular task or phase of the task. As anexample, in a given phase of a task, the robot may jog for a period oftime. During jogging, the actuator 410 may be subjected to cycles ofextension and retraction to cause the robotic leg 400 to be lifted offthe ground and then touch down on the ground, and so on. Thus, forinstance, the controller 562 may command the hydraulic system of FIG. 5(e.g., actuate the solenoid 544) to supply high pressure fluid to thechamber 520 to extend the piston 514 while allowing fluid to dischargefrom the chamber 522. The controller 562 may then command the hydraulicsystem to supply high pressure fluid to the chamber 522 to retract thepiston 514, while allowing fluid to discharge from the chamber 520. Thecontroller 562 may be aware that these cycles would continue for aperiod of time and may thus determine an envelope of pressure values toaccommodate the pressure required to perform both the extension and theretraction. The robot then operates according to these pressureenvelopes.

Particularly, FIG. 8 illustrates a running pressure envelope, inaccordance with an example implementation. As shown in FIG. 8, lines 800and 802 represents a pressure level required in the chambers 520 and 522to effect the cycles of extension and retraction of the piston 514. Whenthe line 800 is above the line 802, then the piston 514 is in anextension portion of a cycle, and when the line 802 is above the line800, the piston 514 is in a retraction portion of the cycle. Thecontroller 562 may be aware of these pressure variations based on thetask being performed or to be performed by the robot. In response, thecontroller 562 may determine a running pressure envelop represented byline 804 that specifies a pressure level at which the accumulator 506should provide fluid to the actuator 410.

Such pressure level should be higher than the requested pressure by athreshold pressure value as represented by pressure margin 806 in FIG.8. The pressure margin 806 may vary over time, and the controller 562determines the pressure margin 806 to be sufficiently large toaccommodate losses in the hydraulic lines and metering losses across thevalves. The pressure margin 806 may also vary based on commanded speedof the actuator 410. For example, the higher the commanded speed, thehigher the amount of fluid flow required by the actuator 410. Further,the higher the amount of fluid flow, the higher the losses in the valves(e.g., the valve 510) and hydraulic lines, and vice versa. Thus, thecontroller 562 may adjust the margin 806 to accommodate a particularcommanded speed.

III. Example Methods

FIG. 9 is a flow chart 900 for controlling hydraulic pressure in alegged robot, in accordance with an example implementation. The flowchart 900 may include one or more operations, or actions as illustratedby one or more of blocks 902-908. Although the blocks are illustrated ina sequential order, these blocks may in some instances be performed inparallel, and/or in a different order than those described herein. Also,the various blocks may be combined into fewer blocks, divided intoadditional blocks, and/or removed based upon the desired implementation.

In addition, for the flow chart 900 and other processes and operationsdisclosed herein, the flow chart shows operation of one possibleimplementation of present examples. In this regard, each block mayrepresent a module, a segment, or a portion of program code, whichincludes one or more instructions executable by a processor or acontroller for implementing specific logical operations or steps in theprocess. The program code may be stored on any type of computer readablemedium or memory, for example, such as a storage device including a diskor hard drive. The computer readable medium may include a non-transitorycomputer readable medium or memory, for example, such ascomputer-readable media that stores data for short periods of time likeregister memory, processor cache and Random Access Memory (RAM). Thecomputer readable medium may also include non-transitory media ormemory, such as secondary or persistent long term storage, like readonly memory (ROM), optical or magnetic disks, compact-disc read onlymemory (CD-ROM), for example. The computer readable media may also beany other volatile or non-volatile storage systems. The computerreadable medium may be considered a computer readable storage medium, atangible storage device, or other article of manufacture, for example.In addition, for the flow chart 900 and other processes and operationsdisclosed herein, one or more blocks in FIG. 9 may represent circuitryor digital logic that is arranged to perform the specific logicaloperations in the process.

At block 902, the flow chart 900 includes determining a task to beperformed by a robot. In line with the discussion above, the robotincludes one or more movable members (e.g., the members 402 and 404) anda hydraulic system. The hydraulic system includes at least (i) one ormore hydraulic actuators configured to operate the one or more movablemembers, and (ii) a source of hydraulic fluid. Further, the taskincludes a plurality of phases. In examples, some of these phasesinvolve movement of at least some of the one or more movable members.The hydraulic system may also include a valve system that controls fluidflow to and from the actuators. The source may supply hydraulic fluidhaving a particular pressure level through the valve system to theactuators so as to cause the members of the robot to move.

Example tasks include moving from one place to another, carrying anobject from one location to another, inserting an object in a particularspace, etc. A task may include multiple phases. For example, to movefrom one location to another, the robot may begin by walking, thentransition into trotting, and then transition into jogging, and slowdown to stop at a target location. During each of these phases, themembers of the robot may be subjected, or may apply, a different levelof force that requires a respective different level of hydraulic fluidpressure.

The source of hydraulic fluid may be an accumulator such as theaccumulator 506. A pump, such as the pump 500 may be configured tosupply pressurized hydraulic fluid to the accumulator to vary pressurelevel of the hydraulic fluid in the accumulator.

At block 904, the flow chart 900 includes causing hydraulic fluid havinga first pressure level to flow from the source to the one or morehydraulic actuators for the robot to perform a first phase of theplurality of phases of the task. A controller of the robot may actuatevalves controlling fluid flow to and from the actuators. The controllermay also command the source of hydraulic fluid to supply hydraulic fluidat a first pressure level appropriate to the first phase of the task.Hydraulic fluid thus flows through the valves to the actuators to causethe actuators to move to begin the first phase of the task. Forinstance, the first phase may involve walking for a period of time asdescribed with respect to FIG. 6. Thus, the controller may command thehydraulic system to cause the actuators to move the legs and arms of therobot, causing the robot to walk.

At block 906, the flow chart 900 includes based on a second phase of thetask, determining a second pressure level for the hydraulic fluid. Asmentioned above with respect to FIG. 6, the controller may be aware(i.e., have task information) that the task involves multiple phases,and may also be aware of what a second phase involves, e.g., a trottingphase. The controller may then determine a second pressure level that isappropriate to the second phase. For example, the second phase mayinvolve higher forces that require higher pressure levels. In anotherexample, the terrain that the robot is operating on may change, thusrequiring a change in the pressure level to accommodate such a change inthe terrain. The controller may take such factors into consideration anddetermine a second pressure level that is appropriate to the secondphase of the task.

At block 908, the flow chart 900 includes adjusting, based on the secondpressure level, operation of the hydraulic system before the robotbegins the second phase of the task. For example, as mentioned above,the source of pressurized hydraulic fluid may be an accumulatorconfigured to store the hydraulic fluid. A pump may be configured tosupply pressurized fluid to the accumulator and change the pressurelevel of fluid in the accumulator.

If the second pressure level is higher than the first pressure level,the controller may cause the pump to provide pressurized hydraulic fluidto the accumulator. Supplying pressurized fluid to the accumulator maycontinue until the hydraulic fluid in the accumulator has a pressurelevel within a threshold pressure value above the second pressure level.Having a pressure level at a margin or threshold pressure value abovethe second pressure level enables compensation for losses in thehydraulic system. Further, having the pressure level above the secondpressure level by a margin may increase likelihood that hydraulic fluidflowing into the actuator(s) has at least a pressure level equal to thesecond pressure level.

In examples, in anticipation of a change in the required pressure level,the controller may cause the pump to start providing the pressurizedfluid to the accumulator at a predefined period of time before the robotbegins the second phase of the task. In this manner, the target pressurelevel may be reached over a period of time less than or equal to thepredefined period of time.

In another example, the second pressure level may be less than the firstpressure level. In this example, the controller may cause the pump tostop providing the hydraulic fluid to the accumulator at least until apressure level of the hydraulic fluid in the accumulator is within athreshold pressure value from the second pressure level. The pressure offluid in the accumulator may be decreased overtime due to leakage in thehydraulic system.

Additionally or alternatively, the hydraulic system may include a dumpvalve (e.g., the dump valve 566) hydraulically connected to the sourceand to a reservoir or tank (e.g., the reservoir 504). In response todetermining the second pressure level is less than the first pressurelevel, the controller may actuate the dump valve. Actuating the dumpvalve causes a portion of the hydraulic fluid in the source to flow tothe reservoir. The controller may actuate the dump valve until apressure level of the hydraulic fluid of the source is within athreshold pressure value from the second pressure level. Thereafter, thecontroller may deactivate the dump valve to block flow therethrough.

In another example, the robot may be subjected to a disturbance duringperformance of a particular phase of the task. For instance, thecontroller may receive sensory information indicating that the robot hasbeen subjected to such a disturbance. For the robot to recover from sucha disturbance and return to performance of the task, the controller maydetermine that third pressure level is appropriate for the recovery.

If the third pressure level is higher than a pressure level at which thehydraulic system operated prior to the disturbance, the controller maycommand the pump to increase the pressure level of fluid in theaccumulator. If the third pressure level is less than the pressure levelat which the hydraulic system operated prior to the disturbance, thecontroller may command the pump to stop providing fluid to theaccumulator. Additionally or alternatively, the controller may actuate adump valve to reduce the pressure level to a margin value above thethird pressure level. Upon recovering from the disturbance, thecontroller may adjust operation of the hydraulic system to return backto the pressure level appropriate for the phase that preceded thedisturbance.

In another example, the sensors may be able to capture informationindicative that such a disturbance is about to occur. The controller mayreceive the information and adjust operation of the hydraulic systemprior to occurrence, and in anticipation, of the disturbance.

IV. Conclusion

The arrangements described herein are for purposes of example only. Assuch, those skilled in the art will appreciate that other arrangementsand other elements (e.g., machines, interfaces, operations, orders, andgroupings of operations, etc.) can be used instead, and some elementsmay be omitted altogether according to the desired results. Further,many of the elements that are described are functional entities that maybe implemented as discrete or distributed components or in conjunctionwith other components, in any suitable combination and location.

While various aspects and implementations have been disclosed herein,other aspects and implementations will be apparent to those skilled inthe art. The various aspects and implementations disclosed herein arefor purposes of illustration and are not intended to be limiting, withthe true scope being indicated by the following claims, along with thefull scope of equivalents to which such claims are entitled. Also, theterminology used herein is for the purpose of describing particularimplementations only, and is not intended to be limiting.

What is claimed is:
 1. A robot comprising: one or more movable members;a hydraulic system comprising at least (i) one or more hydraulicactuators configured to operate the one or more movable members, and(ii) a source of hydraulic fluid; and a controller configured to performoperations comprising: determining a task to be performed by the robot,wherein the task includes a plurality of phases; causing hydraulic fluidhaving a first pressure level to flow from the source to the one or morehydraulic actuators for the robot to perform a first phase of theplurality of phases of the task; based on a second phase of the task,determining a second pressure level for the hydraulic fluid; andadjusting, based on the second pressure level, operation of thehydraulic system before the robot begins the second phase of the task.2. The robot of claim 1, further comprising: one or more sensors coupledto the robot and configured to provide information associated with anenvironment of the robot, wherein the operations further comprise:receiving from the one or more sensors information indicating that adisturbance to the robot is about to occur; based on the information,determining a third pressure level for the hydraulic fluid; andadjusting, based on the third pressure level, operation of the hydraulicsystem before the disturbance occurs.
 3. The robot of claim 2, whereinthe operations further comprise: upon the robot recovering from thedisturbance, adjusting operation of the hydraulic system based on apressure level associated with a phase during which the disturbanceoccurred.
 4. The robot of claim 1, wherein the source is an accumulatorconfigured to store the hydraulic fluid, wherein the hydraulic systemfurther comprises a pump, wherein the second pressure level is higherthan the first pressure level, and wherein adjusting operation of thehydraulic system comprises: causing the pump to provide pressurizedhydraulic fluid to the accumulator until the hydraulic fluid in theaccumulator has a pressure level within a threshold pressure value fromthe second pressure level.
 5. The robot of claim 4, wherein causing thepump to provide the pressurized fluid to the accumulator comprises:causing the pump to start providing the pressurized fluid to theaccumulator at a predefined period of time before the robot begins thesecond phase of the task.
 6. The robot of claim 5, wherein causing thepump to start providing the pressurized fluid to the accumulator at thepredefined period of time before the robot begins the second phase ofthe task involves the hydraulic fluid in the accumulator reaching thepressure level within the threshold pressure value from the secondpressure level over a period of time less than or equal to thepredefined period of time.
 7. The robot of claim 1, wherein the sourceis an accumulator configured to store the hydraulic fluid, wherein thehydraulic system further comprises a pump configured to providepressurized hydraulic fluid to the accumulator, wherein the secondpressure level is less than the first pressure level, and whereinadjusting operation of the hydraulic system comprises: causing the pumpto stop providing the hydraulic fluid to the accumulator at least untila pressure level of the hydraulic fluid in the accumulator is within athreshold pressure value from the second pressure level.
 8. The robot ofclaim 1, wherein the hydraulic system further comprises: a reservoircontaining hydraulic fluid having a given pressure level lower than apressure level of the hydraulic fluid of the source; and a dump valve,wherein adjusting operation of the hydraulic system comprises, inresponse to determining the second pressure level to be less than thefirst pressure level, opening the dump valve until the pressure level ofthe hydraulic fluid of the source is within a threshold pressure valuefrom the second pressure level.
 9. A method comprising: determining atask to be performed by a robot, wherein the robot includes one or moremovable members and a hydraulic system, wherein the hydraulic systemincludes at least (i) one or more hydraulic actuators configured tooperate the one or more movable members, and (ii) a source of hydraulicfluid, wherein the task includes a plurality of phases; causinghydraulic fluid having a first pressure level to flow from the source tothe one or more hydraulic actuators for the robot to perform a firstphase of the plurality of phases of the task; based on a second phase ofthe task, determining a second pressure level for the hydraulic fluid;and adjusting, based on the second pressure level, operation of thehydraulic system before the robot begins the second phase of the task.10. The method of claim 9, further comprising: receiving informationindicating that the robot has been, or is about to be, subjected to adisturbance to a balance of the robot; based on the information,determining a third pressure level for the hydraulic fluid; andadjusting, based on the third pressure level, operation of the hydraulicsystem.
 11. The method of claim 10, further comprising: upon the robotrecovering from the disturbance, adjusting operation of the hydraulicsystem based on a pressure level associated with a phase during whichthe disturbance occurred.
 12. The method of claim 9, wherein the sourceis an accumulator configured to store the hydraulic fluid, wherein thehydraulic system further comprises a pump, wherein the second pressurelevel is higher than the first pressure level, and wherein adjustingoperation of the hydraulic system comprises: causing the pump to providepressurized hydraulic fluid to the accumulator until the hydraulic fluidin the accumulator has a pressure level within a threshold pressurevalue above the second pressure level.
 13. The method of claim 12,wherein causing the pump to provide the pressurized fluid to theaccumulator comprises: causing the pump to start providing thepressurized fluid to the accumulator at a predefined period of timebefore the robot begins the second phase of the task.
 14. The method ofclaim 13, wherein causing the pump to start providing the pressurizedfluid to the accumulator at the predefined period of time before therobot begins the second phase of the task involves the pressure levelreaching the threshold pressure value from the second pressure levelover a period of time less than or equal to the predefined period oftime.
 15. The method of claim 9, wherein the source is an accumulatorconfigured to store the hydraulic fluid, wherein the hydraulic systemfurther comprises a pump configured to provide pressurized hydraulicfluid to the accumulator, wherein the second pressure level is less thanthe first pressure level, and wherein adjusting operation of thehydraulic system comprises: causing the pump to stop providing thehydraulic fluid to the accumulator at least until a pressure level ofthe hydraulic fluid in the accumulator is within a threshold pressurevalue from the second pressure level.
 16. The method of claim 9, whereinthe hydraulic system further comprises (i) a reservoir containinghydraulic fluid having a given pressure level lower than a pressurelevel of the hydraulic fluid of the source, and (ii) a dump valve, andwherein adjusting operation of the hydraulic system comprises: inresponse to determining the second pressure level to be less than thefirst pressure level, actuating the dump valve until the pressure levelof the hydraulic fluid of the source is within a threshold pressurevalue from the second pressure level.
 17. A non-transitory computerreadable medium having stored thereon instructions that, when executedby a controller of a robot, cause the robot to perform operationscomprising: determining a task to be performed by the robot, wherein therobot includes one or more movable members and a hydraulic system,wherein the hydraulic system includes at least (i) one or more hydraulicactuators configured to operate the one or more movable members, and(ii) a source of hydraulic fluid, wherein the task includes a pluralityof phases; causing hydraulic fluid having a first pressure level to flowfrom the source to the one or more hydraulic actuators for the robot toperform a first phase of the plurality of phases of the task; based on asecond phase of the task, determining a second pressure level for thehydraulic fluid; and adjusting, based on the second pressure level,operation of the hydraulic system before the robot begins the secondphase of the task.
 18. The non-transitory computer readable medium ofclaim 17, wherein the operations further comprise: receiving informationindicating that the robot has been, or is about to be, subjected to adisturbance to a balance of the robot; based on the information,determining a third pressure level for the hydraulic fluid; andadjusting, based on the third pressure level, operation of the hydraulicsystem.
 19. The non-transitory computer readable medium of claim 17,wherein the source is an accumulator configured to store the hydraulicfluid, wherein the hydraulic system further comprises a pump, whereinthe second pressure level is higher than the first pressure level, andwherein adjusting operation of the hydraulic system comprises: causingthe pump to provide pressurized hydraulic fluid to the accumulator untilthe hydraulic fluid in the accumulator has a pressure level within athreshold pressure value above the second pressure level.
 20. Thenon-transitory computer readable medium of claim 19, wherein causing thepump to provide the pressurized fluid to the accumulator comprises:causing the pump to start providing the pressurized fluid to theaccumulator at a predefined period of time before the robot begins thesecond phase of the task such that the hydraulic fluid in theaccumulator reaches the pressure level within the threshold pressurevalue from the second pressure level over a period of time less than orequal to the predefined period of time.